home *** CD-ROM | disk | FTP | other *** search
-
-
- func()
- {
- int msqid, msglen;
- long msgtype;
- char string[80];
- struct mssg {
- long mtype;
- char mtext[BUFSIZ];
- } msgbuf;
-
- /* Ask the user if their looking
- * for a particular message type.
- */
- printf("Enter message type or hit <RETURN> for the \
- first message on queue: ");
-
- gets(string);
- if (*string == NULL)
- msgtype=0;
- else
- sscanf(string,"%ld",&msgtype));
-
- /* Attempt to receive a message. The kernel
- * will put the process to sleep until
- * a message arrives.
- */
- if ((msglen=msgrcv(msqid, &msgbuf, BUFSIZ, msgtype, 0)) == -1) {
- /* The perror(3C) function prints the
- * text of the error number contained
- * in the external integer errno.
- */
- perror("msgget() failed: ");
- return(-1);
- }
-
- /* NULL terminate the message */
- msgbuf.mtext[msglen]=NULL;
-
- return(0);
- }
-
-